Method and apparatus for determining performance of a gamer

ABSTRACT

A system that incorporates teachings of the present disclosure may include, for example, a method for detecting a plurality of stimulus signals generated by a gaming accessory device, identifying a plurality of substitute gaming stimulations associated with the plurality of stimulus signals, substituting the plurality of stimulus signals with the plurality of substitute gaming stimulations, incorporating in each of the plurality of substitute gaming stimulations a first unique identifier to generate a plurality of updated substitute gaming stimulations, transmitting the plurality of updated substitute gaming stimulations to a computing device executing a gaming application, and receiving from the computing device a plurality of game action results, where each of the plurality of gaming action results comprises the first unique identifier of a corresponding one of the plurality of updated substitute gaming stimulations. Additional embodiments are disclosed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.15/883,562, filed on Jan. 30, 2018, which is a Continuation of U.S.patent application Ser. No. 15/264,198 (now U.S. Pat. No. 9,914,049),filed on Mar. 13, 2018, which is a Continuation of U.S. patentapplication Ser. No. 13/340,663 (now U.S. Pat. No. 9,474,969), filed onDec. 29, 2011. All sections of the aforementioned application(s) andpatent(s) are incorporated herein by reference in their entirety.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to a method and apparatus fordetermining performance of a gamer.

BACKGROUND

It is common today for gamers to utilize more than one gaming accessory.This is especially true of gamers who play Massively Multiplayer On-line(MMO) games in a team or individual configuration. Gamers can have attheir disposal accessories such as a keyboard, a general purpose gamingpad, a mouse, a gaming console controller, a headset with a built-inmicrophone to communicate with other players, a joystick, a computerconsole, or other common gaming accessories.

A gamer can frequently use a combination of these accessories in onegame (e.g., headset, a keyboard, and mouse). Efficient management andutilization of these accessories can frequently impact a gamer's abilityto compete.

Accessory management can have utility in other disciplines which may notrelate to gaming applications. Efficient use of accessories in theseother disciplines can be important to other users.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 depicts an illustrative embodiment of a Graphical User Interface(GUI) generated by an Accessory Management Software (AMS) applicationaccording to the present disclosure;

FIG. 2 depicts an embodiment of a mouse pad that tracks a relativedisplacement of a computer mouse from a top surface of the mouse pad;

FIGS. 3-4 depict illustrative embodiments for communicatively couplingthe mouse pad of FIG. 2 to a computing device;

FIG. 5 depicts an illustrative embodiment of a communication device;

FIGS. 6-7 depict illustrative embodiments of the GUI of FIG. 1;

FIGS. 8-11 depict illustrative methods describing the operation of theAMS application;

FIG. 12 depicts an illustrative embodiment of a system operating atleast in part according to the methods of FIGS. 8-11;

FIG. 13 depicts an illustrative embodiment of a communication flowdiagram utilized by the system of FIG. 12;

FIG. 14 depicts an illustrative embodiment of gaming results of twodifferent gaming applications catalogued by the AMS application; and

FIG. 15 depicts an illustrative diagrammatic representation of a machinein the form of a computer system within which a set of instructions,when executed, may cause the machine to perform any one or more of themethodologies disclosed herein.

DETAILED DESCRIPTION

The subject disclosure describes, among other things, illustrativeembodiments for collecting, processing, and cataloguing a gamer'sperformance and making assessments thereof. Other embodiments arecontemplated by the subject disclosure.

One embodiment of the present disclosure can entail a method fordetecting a plurality of stimulus signals generated by a gamingaccessory device, identifying a plurality of substitute gamingstimulations associated with the plurality of stimulus signals,substituting the plurality of stimulus signals with the plurality ofsubstitute gaming stimulations, incorporating in each of the pluralityof substitute gaming stimulations a first unique identifier to generatea plurality of updated substitute gaming stimulations, transmitting theplurality of updated substitute gaming stimulations to a computingdevice executing a gaming application, and receiving from the computingdevice a plurality of game action results, where each of the pluralityof gaming action results comprises the first unique identifier of acorresponding one of the plurality of updated substitute gamingstimulations.

One embodiment of the present disclosure can entail a computer-readablestorage medium having computer instructions, which when executed by atleast one processor, causes the at least one processor to detect aplurality of stimulus signals generated by a gaming accessory device,substitute the plurality of stimulus signals with a plurality ofsubstitute gaming stimulations, incorporate in each of the plurality ofsubstitute gaming stimulations a first unique identifier to generate aplurality of updated substitute gaming stimulations, submit theplurality of updated substitute gaming stimulations to a gamingapplication, and receiving from the gaming application a plurality ofgame action results, where each of the plurality of gaming actionresults comprises the first unique identifier of a corresponding one ofthe plurality of updated substitute gaming stimulations.

One embodiment of the present disclosure can entail a computing device,comprising a memory and a processor coupled to the memory. The memorycan include computer instructions which when executed by the process,causes the processor to receive a plurality of substitute gamingstimulations, wherein the plurality of substitute gaming stimulationsare a replacement of a plurality of stimulus signals generated by agaming accessory device, and wherein each of the plurality of substitutegaming stimulations is accompanied with a first unique identifier,submit the plurality of substitute gaming stimulations to a gamingapplication, detect a plurality of gaming action results generated bythe gaming application, generate an updated plurality of gaming actionresults by associating each of the plurality of gaming action resultswith the first unique identifier of a corresponding one of the pluralityof substitute gaming stimulations, and submit the updated plurality ofgaming action results for cataloguing a gamers performance.

One embodiment of the present disclosure can entail a method fordetecting a plurality of stimulus signals generated by a gamingaccessory device, identifying a plurality of substitute gamingstimulations associated with the plurality of stimulus signals,substituting the plurality of stimulus signals with the plurality ofsubstitute gaming stimulations, submitting the plurality of substitutegaming stimulations to a gaming application, tracking a first order ofthe submitted plurality of substitute gaming stimulations, receivingfrom the gaming application a plurality of game action results, trackinga second order of the received plurality of game action results, andcataloguing the plurality of substitute gaming stimulations and theplurality of game action results according to a comparison of the firstorder of the submitted plurality of substitute gaming stimulations andthe second order of the received plurality of game action results.

FIG. 1 depicts an illustrative embodiment of a Graphical User Interface(GUI) generated by an Accessory Management Software (AMS) applicationaccording to the present disclosure. The AMS application can operate ina computing device such as a desktop computer, a laptop computer, aserver, a mainframe computer, a gaming console, a gaming accessory, orcombinations or portions thereof. The AMS application can also operatein other computing devices with computing resources such as a cellularphone, a personal digital assistant, or a media player (such as aniPOD™). From these illustrations it is contemplated that the AMSapplication can operate in any device with suitable computing resources.

FIG. 2 depicts a mouse pad 202 that can be coupled to a computer mouse210. The mouse pad 202 can include a proximity sensor in the form of aelectromagnetic sensor, a capacitive sensor, an inductive sensor, animage sensor, combinations thereof, or other suitable sensing devicescapable of detecting a removal of the computer mouse 210 from a topsurface 204 of the mouse pad 202. In one embodiment, the proximitysensor can measure a distance from the top surface 204 of the mouse pad202 based on thresholds such as a first threshold 212 and secondthreshold 214. Each threshold can be used as a representative action tobe applied to a game (e.g., causing a gaming avatar to move up one floorby lifting the mouse 210 greater than a first distance 206 but less thanthe second threshold 214, or causing the avatar to jump between rooftops when the mouse 210 is lifted greater than a second distance 208).The proximity sensor can cover all or a substantial portion of the topsurface 204 of the mouse pad 202 to detect a three-dimensionaldisplacement of the computer mouse 210 relative to the top surface 204of the mouse pad 202. By covering a large surface area of the mouse pad202, the proximity sensor can be operable to detect angulardisplacements of the computer mouse 210.

For example, the proximity sensor can be adapted to sense a displacementof the computer mouse 210 and provide sensing information that whenprocessed can indicate that a front section 220 of the computer mouse210 has been lifted from the top surface 204 of the mouse pad 202, whilean edge of the rear section 222 remains on the top surface of the mousepad 202. In another example, the proximity sensor can provide sensinginformation that indicates a rear section 222 of the computer mouse 210has been lifted from the top surface 204 of the mouse pad 202, while afront section 220 of the mouse 210 remains on the top surface 204 of themouse pad 202. In another embodiment, the proximity sensor can providesensing information that indicates a right section 224 of the mouse 210has been lifted from the top surface 204 of the mouse pad 202, while anedge of the left section 226 remains on the top surface 204 of the mousepad 202. In yet another embodiment, the proximity sensor can providesensing information that indicates a left section 226 of the mouse 210has been lifted from the top surface 204 of the mouse pad 202, while anedge of the right section 224 remains on the top surface 204 of themouse pad 202.

In another embodiment, the proximity sensor can provide sensinginformation that indicates the computer mouse 210 has been completelylifted from the top surface 204 of the mouse pad 202. In this instance,the sensing information can indicate an angular displacement of a bottomsurface of the computer mouse 210 in three dimensions at various levels(e.g., threshold 1, threshold 2, etc.). In this embodiment the sensinginformation can indicate that the computer mouse 210 is banking left,banking right, tilting forward, tilting back, rotatingcounter-clockwise, rotating clockwise, and combinations thereof.

Based on the embodiments disclosed above, the proximity sensor can beadapted to detect two or three dimensional displacement data todetermine the relative position of the mouse 210 to the top surface 204of the mouse pad 202. This information can be supplied to the AMSapplication to enhance a user's gaming performance as will be describedin more detail below.

FIG. 3 illustrates a number of embodiments for utilizing a wirelessdongle 303 with the mouse pad 210 and a computing device 306 such as agaming console (herein referred to as gaming console 306). In theillustration of FIG. 3, the USB portion of the dongle 303 can bephysically engaged with either the mouse pad 302 or the gaming console306. The dongle 210 in either of these configurations can communicatewith the mouse pad 210 or the gaming console 306 by wireless means 304(e.g., WiFi, Bluetooth, or ZigBee). Other embodiments of the dongle 303are contemplated. For instance, the functions in whole or in part of thedongle 303 can be an integral part of the mouse pad 210 and/or thegaming console 304. In FIG. 4, the mouse pad 210 can alternatively betethered to a computer 402 by cable (e.g., USB cable) to provide a meansof communication less susceptible to electromagnetic interference orother sources of wireless interferences. Alternatively, the mouse pad210 and a computer 402 can have an integrated wireless interface forwireless communications therebetween.

FIG. 5 depicts an illustrative embodiment of a communication device 500.Communication device 500 can serve in whole or in part as anillustrative embodiment of the devices depicted in FIGS. 1-4. Thecommunication device 500 can comprise a wireline and/or wirelesstransceiver 502 (herein transceiver 502), a user interface (UI) 504, apower supply 514, a proximity sensor 516, a motion sensor 518, anorientation sensor 520, and a controller 506 for managing operationsthereof. The transceiver 502 can support short-range or long-rangewireless access technologies such as Bluetooth, WiFi, Digital EnhancedCordless Telecommunications (DECT), or cellular communicationtechnologies, just to mention a few. Cellular technologies can include,for example, CDMA-1X, UMTS/HSDPA, GSM/GPRS, TDMA/EDGE, EV/DO, WiMAX,software defined radio (SDR), Long Term Evolution (LTE), as well asother next generation wireless communication technologies as they arise.The transceiver 502 can also be adapted to support circuit-switchedwireline access technologies (such as PSTN), packet-switched wirelineaccess technologies (such as TCP/IP, VoIP, etc.), and combinationsthereof.

The UI 504 can include a depressible or touch-sensitive keypad 508 witha navigation mechanism such as a roller ball, a joystick, a mouse, or anavigation disk for manipulating operations of the communication device500. The keypad 508 can be an integral part of a housing assembly of thecommunication device 500 or an independent device operably coupledthereto by a tethered wireline interface (such as a USB cable) or awireless interface supporting for example Bluetooth. The keypad 508 canrepresent a numeric keypad commonly used by phones, and/or a QWERTYkeypad with alphanumeric keys. The UI 504 can further include a display510 such as monochrome or color LCD (Liquid Crystal Display), OLED(Organic Light Emitting Diode) or other suitable display technology forconveying images to an end user of the communication device 500.

In an embodiment where the display 510 is touch-sensitive, a portion orall of the keypad 508 can be presented by way of the display 510 withnavigation features. As a touch screen display, the communication device500 can be adapted to present a user interface with graphical userinterface (GUI) elements that can be selected by a user with a touch ofa finger. The touch screen display 510 can be equipped with capacitive,resistive or other forms of sensing technology to detect how muchsurface area of a user's finger has been placed on a portion of thetouch screen display. This sensing information can be used control themanipulation of the GUI elements.

The UI 504 can also include an audio system 512 that utilizes commonaudio technology for conveying low volume audio (such as audio heardonly in the proximity of a human ear) and high volume audio (such asspeakerphone for hands free operation). The audio system 512 can furtherinclude a microphone for receiving audible signals of an end user. Theaudio system 512 can also be used for voice recognition applications.The UI 504 can further include an image sensor 513 such as a chargedcoupled device (CCD) camera for capturing still or moving images.

The power supply 514 can utilize common power management technologiessuch as replaceable or rechargeable batteries, supply regulationtechnologies, and charging system technologies for supplying energy tothe components of the communication device 500 to facilitate long-rangeor short-range portable applications. Alternatively, the charging systemcan utilize external power sources such as DC power supplied over aphysical interface such as a USB port.

The proximity sensor 516 can utilize proximity sensing technology suchas an electromagnetic sensor, a capacitive sensor, an inductive sensor,an image sensor or combinations thereof. The motion sensor 518 canutilize motion sensing technology such as an accelerometer, a gyroscope,or other suitable motion sensing technology to detect movement of thecommunication device 500 in three-dimensional space. The orientationsensor 520 can utilize orientation sensing technology such as amagnetometer to detect the orientation of the communication device 500(North, South, West, East, combined orientations thereof in degrees,minutes, or other suitable orientation metrics).

The communication device 500 can use the transceiver 502 to alsodetermine a proximity to a cellular, WiFi, Bluetooth, or other wirelessaccess points by common sensing techniques such as utilizing a receivedsignal strength indicator (RSSI) and/or a signal time of arrival (TOA)or time of flight (TOF). The controller 506 can utilize computingtechnologies such as a microprocessor, a digital signal processor (DSP),and/or a video processor with associated storage memory such as Flash,ROM, RAM, SRAM, DRAM or other storage technologies.

Other components not shown in FIG. 5 are contemplated by the presentdisclosure. For instance, the communication device 500 can include areset button (not shown). The reset button can be used to reset thecontroller 506 of the communication device 500. In yet anotherembodiment, the communication device 500 can also include a factorydefault setting button positioned below a small hole in a housingassembly of the communication device 500 to force the communicationdevice 500 to re-establish factory settings. In this embodiment, a usercan use a protruding object such as a pen or paper clip tip to reachinto the hole and depress the default setting button.

The communication device 500 as described herein can operate with moreor less components described in FIG. 5. These variant embodiments arecontemplated by the present disclosure. For example, the mouse pad 210can be adapted to include at least a transmitter portion of thetransceiver 502, the proximity sensor 516, the controller 506 and powersupply 514 (which could be derived from a USB connection). In anotherembodiment, the mouse pad 210 can comprise the proximity sensor 516 anda display 510 of the UI 504. Other variants of the mouse 210 and mousepad 210 are contemplated by the present disclosure.

FIGS. 8-10 depict illustrative methods 800-1000 describing the operationof the AMS application and the apparatus 202. Method 800 can begin withstep 802 in which the AMS application is invoked in a computing device.The computing device can be the gaming console 306 or computer 402 ofFIGS. 3 and 4, or any other suitable computing device that can interact,execute a gaming application such as a video game, or otherwise presenta visual rendition of a gaming application. The invocation step canresult from a user selection of the AMS application from a menu oriconic symbol presented on a desktop of the computing device by anoperating system (OS) managing operations thereof. In step 804, the AMSapplication can detect by way of drivers in the OS a plurality ofoperationally distinct accessories communicatively coupled to thecomputing device. The accessories can be coupled to the computing deviceby a tethered interface (e.g., USB cable), a wireless interface (e.g.,Bluetooth or Wireless Fidelity—WiFi), or combinations thereof.

In the present context, an accessory can represent any type of devicewhich can be communicatively coupled to the computing device (or anintegral part of the computing device) and which can control aspects ofthe OS and/or a software application operating in the computing device.An accessory can represent for example a keyboard, a touch screendisplay, a gaming pad, a mouse, a mouse with a proximity sensor, a mousepad with a proximity sensor, a gaming console controller, a joystick, amicrophone, or a headset with a microphone—just to mention a few. Thekeyboard and touch screen display represent accessories of a similarcategory since their operational parameters are alike.

A mouse and mouse pad with a proximity sensor (such as shown in FIG. 1),on the other hand, represent accessories having disparate operationalparameters from the keyboard or touch screen display. For instance, theoperational parameters of a keyboard generally consist of alphanumerickeys, control keys (e.g., Shift, Alt, Ctrl), and function keys while theoperational parameters of a mouse and mouse pad with proximity sensorconsist of two and three dimensional navigation data generated by atracking device in the mouse and a proximity sensor in the mouse padproviding proximity sensing information, buttons on the mouse to invokeGUI selections, and settings of the mouse (e.g., counts or dots perinch, acceleration, scroll speed, jitter control, line straighteningcontrol, and so on). Such distinctions can be used to identify disparatecategories of accessories.

In step 806, the AMS application presents a GUI 101 such as depicted inFIG. 1 with operationally distinct accessories such as the keyboard 108,and mouse and mouse pad combination 115. The GUI 101 presents theaccessories 108-116 in a scrollable section 117. One or more accessoriescan be selected by a user with a common mouse pointer. In thisillustration, the keyboard 108 and mouse and mouse pad combination 115were selected for customization. Upon selecting the keyboard 108 and themouse and mouse pad combination 115 in section 117, the AMS applicationpresents the keyboard 108 and mouse and mouse pad combination 115 insplit windows 118, 120, respectively, to assist the user during thecustomization process.

In step 808, the AMS application can be programmed to detect auser-selection of a particular software application such as a game. Thisstep can be the result of the user entering in a Quick Search field 160the name of a gaming application (e.g., World of Warcraft™ or WoW). Uponidentifying a gaming application, the AMS application can retrieve instep 810 from a remote or local database gaming application actionswhich can be presented in a scrollable section 139 of the GUIrepresented as “Actions” 130. The actions can be tactical actions 132,communication actions 134, menu actions 136, and movement actions 138which can be used to invoke and manage features of the gamingapplication.

The actions presented descriptively in section 130 of the GUI canrepresent a sequence of accessory input functions which a user canstimulate by button depressions, navigation or speech. For example,depressing the left button on the mouse 110 can represent the tacticalaction “Reload”, while the simultaneous keyboard depressions “Ctrl A”can represent the tactical action “Melee Attack”. For ease of use, the“Actions” 130 section of the GUI is presented descriptively rather thanby a description of the input function(s) of a particular accessory.

Any one of the Actions 130 can be associated with one or more inputfunctions of the accessories being customized in windows 118 and 120 byway of a simple drag and drop action or other customization options. Forinstance, a user can select a “Melee Attack” by placing a mouse pointer133 over an iconic symbol associated with this action. Upon doing so,the symbol can be highlighted to indicate to the user that the icon isselectable. At this point, the user can select the icon by holding theleft mouse button and drag the symbol to any of the input functions(e.g., buttons) of the keyboard 108 or selectable options of the mouseand mouse pad combination 115 to make an association with an inputfunction of one of these accessories. Actions of one accessory can beassociated with another accessory that is of a different category. Forexample, actions of game pad 112 can be associated with selectableoptions of the mouse and mouse pad combination 115.

Selectable options of the mouse and mouse pad combination 115 are shownin FIG. 2. As noted earlier, the mouse 210 can be placed on the mousepad 202. While the mouse 210 is on the mouse pad 202, the mouse 210 canoperate as it would normally. That is, with a tracking sensor (e.g.,infrared sensor) the mouse 210 can detect movements on the mouse pad 202and transmit these movement coordinates to a computing device such asthe gaming console 306 in FIG. 3 or the computer 402 of FIG. 4. In oneembodiment, a Melee Attack action can be associated by dragging thisaction to either the left button 201 or right button 203 of the mouse210. Thus, when the selected button is pressed, the stimulus associatedwith the button depression of the mouse 210 can be substituted by theAMS application with the Melee Attack action. In one embodiment, theMelee Action can be associated with a combination of key button presses(e.g., simultaneous depression of the left and right buttons 201, 203,or a sequence of button depressions: two rapid left button depressionsfollowed by a right button depression).

In one embodiment, the Melee Action can be associated with movement ofthe mouse 210 while on the mouse pad 202 such as, for example, rapidmovement of the mouse 210 left to right repeatedly, forward and backwardrepeatedly, clockwise, or counterclockwise. In one embodiment, the MeleeAttack can be associated with a lifting of the front side 220 of themouse 210 from the mouse pad 202, a lifting of the left side 226 of themouse 210 from the mouse pad 202, a lifting of the right side 224 of themouse 210 from the mouse pad 202, or a lifting of the rear side 222 ofthe mouse 210 from the mouse pad 202. To facilitate one of theseembodiments, the proximity sensor of the mouse pad 202 can detect thesepartial movements of the mouse 210 away from the top surface 204 of themouse pad 202. The stimuli generated by any of these detectablemovements away from the top surface 204 of the mouse pad 202 can beassociated with the Melee Attack (or any other gaming function). The AMSapplication can thus substitute data generated by the proximity sensorwith any gaming function of interest to the gamer.

In one embodiment, the complete removal of the mouse 210 from the mousepad 202 can be associated with a spatial displacement. For example, theremoval of the mouse 210 from the mouse pad 202 by a distance 206exceeding the first threshold 212, but less than the second threshold214, can be associated with moving up one level between floors of abuilding presented by a gaming application. The action to move betweenfloors can be recorded in the AMS application as a macro. This macro canbe associated with the detection of the mouse 210 when lifted above thefirst threshold 212 but below the second threshold 214. Each time thefirst threshold 212 is crossed, the AMS application can substitute theproximity data with a command or sequence of commands to move thegamer's avatar between floors.

In one embodiment, the AMS application can be adapted to makeassociations with two dimensional or three dimensional movements of themouse 210 according to a gaming venue state. For example, suppose theplayer's avatar enters a fighter jet. In this gaming venue state,rolling of the thumbwheel 205 of the mouse 210 can be associated withcontrolling the throttle of the jet engines. For example, forwardrolling of the thumbwheel wheel 205 can be associated with increasingthe speed of the jet engines, while reverse rolling of the thumbwheel205 can be associated with reducing the speed of the jet engines.Lifting the forward section 220 of the mouse 210 can be associated withmoving the elevators of the jet to cause the jet to lift.

While the jet is in flight, removal of the mouse 210 from the mouse pad202 can be associated with three dimensional navigation of the jet. Forexample, banking the mouse 210 to the right can be associated withbanking the jet to the right and vice-versa. Tilting the mouse 210forward can be associated with causing the jet to decline in altitude,while tilting the mouse 210 backwards can be associated with causing thejet to climb in altitude. Lowering the mouse 210 towards the mouse pad202 can be associated with landing the jet. Moving the mouse clockwiseor counterclockwise can be associated with controlling the jet's rudder.Three dimensional actions of the mouse 210 can be detected by theproximity sensor of the mouse pad 202 and submitted as data coordinatesto the AMS application which can substitute these stimulations withnavigation data that would have been otherwise transmitted by anotheraccessory such as a joy stick.

In a gaming venue state where the gamer's avatar has entered a building,the thumbwheel 205 can be associated with moving the player forward orbackward. The lifting of the mouse 210 above the first threshold 212 canbe associated with a rapid movement of the avatar up one floor. Thesecond threshold 214 can be associated with a rapid movement of theavatar down one floor—the opposite of the first threshold.Alternatively, the second threshold 214 could be associated with adifferent action such as jumping between buildings when the avatar is onthe roof of a building.

Thus, the AMS application can associate stimuli of an accessory withpredefined gaming actions, and adapt these associations based on agaming venue state such as the ones described above. Accordingly, theassociations made between stimuli supplied by an accessory such as themouse pad 202 or the mouse 210 can be venue state dependent. The gamingvenue state can be a description of a gaming state (e.g., gamingcontrols for a tank), captured images of the gaming venue state (e.g.,one or more still images of a tank, or a video of an avatar entering atank), and/or application programming instructions (API) messages whichcan be received from the gaming application to enable the AMSapplication to identify the occurrence of a particular gaming venuestate.

With this in mind, attention is directed to step 812 where the AMSapplication can respond to a user selection of a profile. A profile canbe a device profile or master profile invoked by selecting GUI button156 or 158, each of which can identify the association of gaming actionswith input functions of one or more accessories. If a profile selectionis detected in step 812, the AMS application can retrieve in step 814macro(s) and/or prior associations of actions with the accessories asdefined by the profile. The actions and/or macros defined in the profilecan also be presented in step 816 by the AMS application in the actionscolumn 130 of the GUI 101 to modify existing associations or create newassociations.

In step 818, the AMS application can also respond to a user selection tocreate a macro. A macro in the present context can mean any actionablecommand which can be recorded by the AMS application. An actionablecommand can represent a sequence of input functions of an accessory,identification of a software application to be initiated by an operatingsystem (OS), or any other recordable stimulus to initiate, control ormanipulate software applications. For instance, a macro can represent auser entering the identity of a software application (e.g., instantmessaging tool) to be initiated by an OS.

A macro can also represent recordable speech delivered by a microphonesingly or in combination with a headset for detection by anothersoftware application through speech recognition or for delivery of therecorded speech to other parties. In yet another embodiment a macro canrepresent recordable navigation of an accessory such as a mouse orjoystick, recordable selections of buttons on a keyboard, a mouse, or amouse pad, and so on. Macros can also be combinations of the aboveillustrations. Macros can be created from the GUI 101 by selecting a“Record Macro” button 148. The macro can be given a name and category inuser-defined fields 140 and 142.

Upon selecting the Record Macro button 148, a macro can be generated byselection of input functions on an accessory (e.g., Ctrl A, speech, twoor three dimensional movements of the mouse 210 relative to the mousepad 202, etc.) and/or by manual entry in field 144 (e.g., typing thename and location of a software application to be initiated by an OS,such as an instant messaging application). Once the macro is created, itcan be tested by selecting button 150 which can repeat the sequencespecified in field 144. The clone button 152 can be selected toreplicate the macro sequence if desired. Fields 152 can also presenttiming characteristics of the stimulation sequence in the macro with theability to modify and thereby customize the timing of one or morestimulations in the stimulation sequence. Once the macro has been fullydefined, selection of button 154 records the macro in step 820. Therecording step can be combined with a step for adding the macro to theassociable items Actions column 130, thereby providing the user themeans to associate the macro with input functions of the accessories(e.g., one or more keys of the keyboard 108, buttons of the mouse 210,two or three dimensional movements of the mouse 210 relative to themouse pad 202).

In step 822, the AMS application can respond to drag and dropassociations of actions and input functions of the keyboard 108 andselectable GUI elements of the mouse 210 and mouse pad combination 115.Associations can also be made based on the two or three dimensionalmovements of the mouse 210. In this embodiment, the movements can beassociated with navigation movements generated by a joy stick 116.Alternatively, the AMS application can be adapted to performmathematical transcoding of three dimensional data generated by themouse pad 202 to three dimensional data generated by a navigation devicesuch as the joy stick 116. Mathematical transcoding can be performed bymodeling the stimuli of a particular navigation device with two or threedimensional navigation stimuli generated by the mouse pad 202. If userinput indicates that a user is performing an association, the AMSapplication can proceed to step 824 where it can determine if a profilehas been identified in step 812 to record the association(s) detected.If a profile has been identified, the associations are recorded/storedin the profile in step 826. If a profile has not been identified in step812, the AMS application can create a profile in step 828 for recordingthe detected associations. In the same step, the user can name the newlycreated profile as desired. The newly created profile can also beassociated with one or more gaming software applications in step 830 forfuture reference. It is noted that in the case of the mouse and mousepad combination 115, the AMS application can record in a profile in step826 associations based on gaming venue states. Accordingly, the samestimuli generated by the mouse pad 202 or mouse 210 can result indifferent substitutions based on the gaming venue state detected by theAMS application.

The AMS application can be adapted to utilize image processingtechnology to detect a gaming venue state according to pre-stored imagesor video clips stored in the profile. For example, the AMS applicationcan use image processing technology to identify an avatar of a gamer andtrack what the avatar does as directed by the gamer. For example, if theavatar enters a tank, the image processing technology of the AMSapplication can detect a gaming venue state associated with the use of atank, and thereby identify associations between accessory stimuli andgaming actions (e.g., associations between gaming actions and buttondepressions of the mouse 210, associations between gaming actions andtwo or three dimensional movements of the mouse 210 relative to themouse pad 202, and so on).

Referring back to step 826, once the associations have been recorded ina profile, the AMS application can determine in step 832 whether theaccessories shown illustratively in FIGS. 2-4 are available forprogramming. If the AMS application detects that the accessories (mouse210 and mouse pad 202) are communicatively coupled to a computing devicefrom which the AMS application is operating (e.g., gaming console 306 orcomputer 402), the AMS application can proceed to step 834 of FIG. 8where it submits the profile and its contents for storage in one of theaccessories (e.g., the mouse 210 or mouse pad 202 in FIGS. 3-4) or thedongle 303. In this embodiment, the mouse 210, mouse pad 202, dongle303, or combinations thereof can perform stimuli substitutions accordingto the associations recorded by the AMS application in the profile.Alternatively, the AMS application can store the profile in thecomputing device (306 or 402) and perform substitutions of stimulisupplied by the mouse 210 and mouse pad 202 according to stimuli togaming actions associations recorded in the profile by the AMSapplication.

The GUI 101 of FIG. 1 presented by the AMS application can have otherfunctions. For example, the GUI 101 can provide options for layout ofthe accessory selected (button 122), how the keyboard is illuminatedwhen associations between input functions and actions are made (button134), and configuration options for the accessory (button 126). The AMSapplication can adapt the GUI 101 to present more than one functionalGUI page. For instance, by selecting button 102, the AMS application canadapt the GUI 101 to present a means to create macros and associateactions to accessory input functions as depicted in FIG. 1. Selectingbutton 104 can cause the AMS application to adapt the GUI 101 to presentstatistics from raw stimulation information captured by the AMSapplication as will be described below. Selecting button 106 can alsocause the AMS application to adapt the GUI 101 to present promotionaloffers and software updates.

It should be noted that the steps of method 800 in whole or in part canbe repeated until a desirable pattern of associations of actions tostimulus signals or stimulus data generated by the selected accessorieshas been accomplished. The stimulus signals or stimulus data can begenerated as described above from manipulations of the accessory (e.g.,button depressions or other forms of accessory usage such as two orthree dimensional movement of the mouse 210 relative to the mouse pad202 as shown in FIG. 2). The stimulus signals or stimulus data generatedby an accessory can be associated with gaming actions in the form ofother stimulus signals or stimulus data recognizable by the gamingapplication (e.g., video game). It would be apparent to an artisan withordinary skill in the art that there can be numerous other approaches toaccomplish similar results. These undisclosed approaches arecontemplated by the present disclosure.

FIG. 9 depicts a method 900 in which the AMS application can beprogrammed to recognize unknown accessories so that method 800 can beapplied to new accessories. Method 900 can begin with step 902 in whichthe AMS application detects an unknown accessory such as a new keyboard,tablet, mouse pad with proximity sensor, or other type of accessory froman unknown vendor by way of a communicative coupling to a computingdevice from which the AMS application operates. Assuming in thisillustration the unknown accessory is a keyboard, the AMS application inthis instance can receive identity information from the keyboard. Theidentity can be used to search for the keyboard from a local or remotedatabase. Upon detecting an unknown accessory, the AMS application instep 904 can present a depiction of an accessory of similar or samecategory in response to a user providing direction as to the type ofaccessory (by selecting for example a drop-down menu). Alternatively, orin combination with the user instructions, the AMS application candetermine from the identity information received from the unknownaccessory an accessory type.

In step 906 the AMS application can receive instructions describing allor a portion of the input functions of the unknown accessory. Theseinstructions can come from a user who defines each input functionindividually or responds to inquiries provided by the AMS application,or from a remote database that describes the features of the accessory.The AMS application can for example make an assumption as to thekeyboard layout and highlight each key with a proposed function whichthe user can verify or modify. Once the AMS application has beenprovided instructions in step 906, the AMS application can create anaccessory identity in step 908 which can be defined by the user. Insteps 910 and 912, the AMS application can associate and record theaccessory instructions with the identity for future recognition of theaccessory. In step 914, the AMS application can present a depiction ofthe new accessory with its identity along with the other selectableaccessories in section 117 of FIG. 1.

Method 900 can provide a means for universal detection andidentification of any accessory which can be used to control or managesoftware applications operating in a computing device.

FIG. 10 depicts a method 1000 for illustrating the operations of the AMSapplication for either of the configuration shown in FIGS. 3-4. In theconfigurations of FIGS. 3-4, the AMS application can be operating inwhole or in part from the mouse 210, the mouse pad 202, the computer 402(or gaming console 306), or combinations thereof. For illustrationpurposes, it is assumed the AMS application operates from the computer402. Method 1000 can begin with the AMS application establishingcommunications in steps 1002 and 1004 with the computer 402 and a gamingaccessory such as the mouse 210 and mouse pad 202, a keyboard 108, and aheadset 114 such as shown in FIGS. 1 and 2. These steps can representfor example a user starting the AMS application from the computer 402and/or the user inserting at a USB port of the computer 402 a connectorof a USB cable tethered to the mouse 210 and another USB cable tetheredto the mouse pad 202, which invokes the AMS application. In step 1006,the mouse 210 and mouse pad 202, keyboard 108, and/or headset 114 can inturn provide the AMS application one or more accessory ID's. With theaccessory ID's, the AMS application can identify in step 1008 a useraccount associated with the mouse 210 and mouse pad 202. In step 1010,the AMS application can retrieve one or more profiles associated withthe user account.

In step 1012, the user can be presented by way of a display coupled tothe computer 402 profiles available to the user to choose from. If theuser makes a selection, the AMS application proceeds to step 1014 whereit retrieves from the selected profiles the association(s) storedtherein. If a selection is not made, the AMS application can proceed tostep 1016 where it can determine whether a software gaming application(e.g., video game) is operating from the computer 402 or whether thecomputer 402 is communicating with the software gaming application byway of a remote system communicatively coupled to the computer 402(e.g., on-line gaming servers presenting, for example, World ofWarcraft™). If a gaming software application is detected, the AMSapplication proceeds to step 1017 where it retrieves a profile thatmatches the gaming application detected and the association(s) containedin the profile. In the present context, association(s) can representaccessory stimulations, navigation, speech, the invocation of othersoftware applications, or macros. The accessory stimulations can bestimulations that are generated by the mouse 210 and mouse pad 202 beingused, as well as stimulations from other accessories (e.g., keyboard108, headset 114), or combinations thereof.

Once a profile and its contents have been retrieved in either of steps1014 or step 1017, the AMS application can proceed to step 1119 of FIG.11 where it monitors for a change in a gaming venue state based on thepresentations made by the gaming application, or API messages suppliedby the gaming application. At the start of a game, for example, thegaming venue state can be determined immediately depending on the gamingoptions chosen by the gamer. The AMS application can determine thegaming venue state by tracking the gaming options chosen, receiving anAPI instruction from the gaming application, or by performing imageprocessing on the video presentation generated by the gamingapplication. For example, the AMS application can detect that the gamerhas directed an avatar to enter a tank. The AMS application can retrievein step 1119 associations for the mouse 210 and mouse pad 202 forcontrolling the tank.

Moving the mouse 210 forward, backwards, or sideways in two dimensionscan control the tanks movement. Similarly, rotating the mouse 210 cancontrol the rotation of the tank. Tilting the mouse 210 forward whichlifts the rear portion 222 of the mouse 210 can cause the proximitysensor of the mouse pad 202 to provide proximity data to the AMSapplication which is substituted with an action to cause the tank tomove forward. The profile retrieved by the AMS application can indicatethat the greater the forward tilt of the mouse 210, the greater thespeed of the tank should be moving forward. Similarly, a rear tilt cangenerate proximity data that is substituted with a reverse motion and/orbraking of the forward motion to stop or slow down the tank. A threedimensional lift of the mouse can cause the tank to steer according tothe three dimensional proximity data provided by the mouse pad 202. Forexample, a combination of a forward tilt and right bank of the mouse 210can be substituted by the AMS application to cause an increase inforward speed of the tank with a turn to the right determined by the AMSapplication according to a degree of banking of the mouse 210 to theright. In the above embodiment, the three dimensional proximity dataallows a gamer to control any directional vector of the tank includingspeed and acceleration.

In another illustration, the AMS application can detect a new gamingvenue state as a result of the gamer directing the avatar to leave thetank and travel on foot. Once again the AMS application retrieves instep 1119 associations related to the gaming venue state. In thisembodiment, selection of buttons of the mouse 210 can be associated withweaponry selection, firing, reloading and so on. The movement of themouse 210 in two dimensions can control the direction of the avatar.Similarly, three dimensional movement of the mouse 210 can be detectedby the mouse pad 202 and transmitted to the AMS application as threedimensional proximity data which can control any directional vector ofthe avatar including speed and acceleration similar to how the tank wascontrolled.

Thus once the gaming venue state is detected in step 1119, the AMSapplication retrieves the associations related to the venue state andperforms substitutions of stimuli generated by the mouse 210, mouse pad202, keyboard 108, and/or speech commands generated by the headset 114.The AMS application can then proceed to monitor in step 1120stimulations generated by the accessories coupled to the computer 402.The stimulations can be generated by the gamer by manipulating the mouse210, mouse pad 202, keyboard 108, and/or by speech commands detected bythe headset 114.

If a simulation is detected at step 1120, the AMS application candetermine in step 1122 whether to pass the detected stimulation(s) to anOperating System (OS) of the computer 402 without substitutions in steps1140-1148. This determination can be made by comparing the detectedstimulation(s) to triggers associated with one or more actions in theprofile. If the detected stimulation(s) match the stimulationsidentified as triggers, then the AMS application proceeds to step 1140where it retrieves substitute stimulation(s) from the triggeredaction(s) in the profile. In step 1142, the AMS application cansubstitute the detected stimulation(s) with the substitute stimulationsin the profile. In one embodiment, the AMS application can track in step1144 the substitute stimulations by updating these stimulations with aunique identifier such as a globally unique identifier (GUID). In thisembodiment, the AMS application can also add a time stamp to eachsubstitute stimulation representative of when the substitution wasperformed.

In another embodiment, the AMS application can track each substitutestimulation according to their order of submission to the gamingapplication. For instance, sequence numbers can be generated for thesubstitute stimulations to track the order in which they were submittedto the gaming application. In this latter embodiment, the substitutestimulations do not need to be updated with sequence numbers oridentifiers so long as the order of gaming action results submitted bythe gaming application to the AMS application remain in the same orderas the substitute stimulations were originally submitted. For example,if a first stimulation sent to the gaming application is a command toshoot, and a second stimulation sent to the gaming application is acommand to duck, then so long as the gaming application provides first agame action result for shooting, followed by a game action result forducking, then the substitute stimulations will not require updating withsequence numbers since the game action results are reported in the orderthat the stimulations were sent. If on the other hand, the game actionresults can be submitted out of order, then updating the stimulationswith sequence numbers or another suitable identifier would be requiredto enable the AMS application to properly track and correlatestimulations and corresponding gaming action results. Once thestimulations received in step 1120 have been substituted with otherstimulations in step 1142, and the AMS application has chosen a propertracking methodology, the AMS application can proceed to step 1148 andreport the substitute stimulations to the OS of the computer 402.

Referring back to step 1122, if the detected stimulation(s) do not matchthe stimulations identified as triggers in the profile associated withthe game, the AMS application proceeds to one of steps 1144 or 1146 inorder to track the stimulations of the accessory. Once the AMSapplication has performed the necessary steps to track the stimulationas originally generated by the accessory, the AMS application proceedsto step 1148 where it transmits the detected stimulation to the OS ofthe computer 402 with or without tracking information as previouslydescribed.

In step 1134, the OS determines whether to invoke in step 1136 asoftware application identified in the stimulation(s) (e.g., gamer says“turn on team chat”, which invokes a chat application), whether forwardthe received stimulations to the gaming software application in step1138, or combinations thereof. Contemporaneous to the embodimentsdescribed above, the AMS application can monitor in step 1150 for gameaction results supplied by the gaming application via a defined API. Thegame action results can be messages sent by the gaming application byway of the API of the gaming application to inform the AMS applicationwhat has happened as a result of the stimulation sent in step 1138. Forinstance, suppose the stimulation sent to the gaming application in step1138 is a command to shoot a pistol. The gaming application candetermine that the shot fired resulted in a miss of a target. The gamingapplication can respond with a message which is submitted by way of theAPI to the AMS application that indicates the shot fired resulted in amiss. If IDs such as GUIDs were sent with each stimulation, the gamingapplication can submit game action results with their correspondingGUID.

For example, if the command to shoot included the ID “1234”, then thegame action result indicating a miss will include the ID “1234”, whichthe AMS application can use in step 1152 to correlate stimulations withgame action results. If on other hand, the order of game action resultscan be maintained consistent with the order of the stimulations, thenthe AMS application can correlate in step 1154 stimulations with gameaction results by the order in which stimulation were submitted and theorder in which game action results were received. In step 1156, the AMSapplication can catalogue stimulations and game action resultsaccordingly.

FIGS. 12-13 illustrate embodiments of a system with a correspondingcommunication flow diagram. In this illustration a user clicks a mousebutton as shown in FIG. 12. The mouse accessory device can includefirmware, which creates an event as depicted by event 2 in FIG. 12. Themouse click and the event creation are depicted in FIG. 13 as steps 1302and 1304. In step 1304, the firmware of the mouse accessory can, forexample, generate an event type “mouse button #3”, and a unique GUIDwith a time stamp which is submitted to the AMS application. Referringback to FIG. 12, the AMS application catalogues event 3, and if asubstitute stimulation has been predefined, remaps the event accordingto the substitution. The remapped event is then transmitted to thegaming application at event 4. Event 3 of FIG. 12 is depicted as step1306 in FIG. 13. In this illustration, the AMS application substitutesthe mouse button #3 depression stimulus with a “keyboard ‘F’” depressionwhich can be interpreted by the gaming application as a fire command.The AMS application in this illustration continues to use the same GUID,but substitutes the time stamp for another time stamp to identify whenthe substitution took place.

Referring back to event 4, the gaming application processes the eventand sends back at event 5 a game action result to the AMS applicationwhich is processed by the AMS application at event 6. The AMSapplication then submits the results to the accessory at event 7. Events4 and 5 are depicted as step 1308 in FIG. 13. In this step, the gamingapplication processes “F” as an action to fire the gamer's gun, and thendetermines from the action the result from logistical gaming resultsgenerated by the gaming application. In the present illustration, it isassumed the action resulted in a hit. The gaming application submits tothe AMS application the result type “Hit” with a new time stamp, whileutilizing the same GUID for tracking purposes. At step 1310, the AMSapplication correlates the stimulation “mouse button #3 (and/or thesubstitute stimulation keyboard “F”) to the game result “Hit” andcatalogues them in memory. The AMS application then submits to theaccessory (e.g., mouse) in step 1310 the game action results “Hit” withthe same GUID, and a new time stamp indicating when the result wasreceived. Upon receiving the message from the AMS application, theaccessory in step 1312 process the “Hit” by asserting a red LED on theaccessory (mouse) to indicate a hit. Other notification notices can beused such as another color for the LED to indicate misses, a specificsound for a hit, or kill, a vibration or other suitable technique fornotifying the gamer of the game action result.

After completing a game, the user can select button 104 in FIG. 1, whichcauses the AMS application to present an updated GUI such as shown inFIG. 6, which illustrates a portion of the catalogued results. Forinstance, the AMS application can present a frequency of usage of thebuttons of the mouse 210, and/or a frequency of two and/or threedimensional movements detected by the mouse pad 202 in step 1020 of FIG.10.

In the illustration of FIG. 6, buttons and two and/or three dimensionalmovements are color-coded to illustrate the frequency of usage of mouse210. A color scale 603 defines the frequency of usage of buttons and/ormovements. The first end of the scale (navy blue) represents a singledetected stimulus, while an opposite end of the scale (bright red)represents 500 detected stimuli. Based on this scale, the AMSapplication maps by color stimulations of the mouse 210 and two and/orthree dimensional proximity data detected by the mouse pad 202. Forexample, counterclockwise rotation of the mouse 210 is shown in red,while clockwise rotations are shown in blue. The red indicates a highfrequency of counterclockwise rotations, while blue indicates a lowfrequency of clockwise rotations. Color codes are also used to indicatethe frequency of forward tilting 626, rear tilting 628, left banking630, and right banking 634 of the mouse 210 relative to the mouse pad202. Color codes can also be used to determine the frequency of use ofthe right button 634 and left button 636 of the mouse 210.

The AMS application provides additional functions in a playback panel ofthe GUI which can help a gamer understand how the color coded keys wereused during an active software application such as a video game. In thissection of the GUI, the AMS application can present the user with aplayback control function 602 which the user can select to replay,pause, forward or rewind the usage of buttons 634, 636 and/or two orthree dimensional movements of the mouse 210 from a top view or sideview as shown in FIG. 6. When usage playback is selected, the user canfor instance see the color coded keys highlighted in real-time with atemporary white border to visualize how the buttons 634 and 636 wereselected. The user can also see the mouse 210 moving in two or threedimensional space. A time clock 604 provides the user the elapsed timeof the playback sequence. Button 612 allows the user to retrievestatistics from other sessions, while button 614 provides the user ameans to save statistics from a given session.

The GUI of FIG. 6 can be shown as split screens with all accessorieswhich generated one or more detected stimulations (e.g., keyboard 108,mouse 210, mouse pad 202, and speech commands received via a headset114), each providing statistical results depicted with color coding.Although not shown, split screen embodiments are contemplated by thepresent disclosure for the GUI of FIG. 6.

In addition to a symbolic representation as shown in FIG. 6, the AMSapplication can provide the gamer a means to visualize raw statistics ina table format such as shown in FIG. 7 by selecting button 612. Thetable format shows raw data in section 702 and possible suggestions insection 704 for improving user performance which can be generated by theAMS application. Section 702 can be presented in a table format with acolumn identifying the input element being analyzed, its usage, and rawfrequency of usage. The user can ascertain from this table the most andleast frequently used input elements as well as other identifiablepatterns.

The AMS application can utilize an understanding of the layout of theaccessory to determine from the statistics ways that the user canimprove response time or ergonomic use. For example, the AMS applicationcan determine a lack of usage of the left button 636 of the mouse 210.From this observation, the AMS application can suggest associating agaming action with the button to improve the gamer's performance basedon an observed behavior of the game and the gamer's actions. The AMSapplication can also determine that the gamer's rapid banks to the leftand right may be impacting the gamer's performance in a particular venue(e.g., when flying a jet aircraft).

The AMS application can utilize present and next generation algorithmsto determine how to improve response times and ergonomic usage ofaccessory devices. The AMS application can for example have at itsdisposal an understanding of the layout of each accessory and knowledgeof its capabilities, the type of software being controlled by theaccessory, the type of operations commonly used to control the software(e.g., known actions as shown in the actions column 130 of FIG. 1), anunderstanding of the associations made by other users (e.g., gamers) toimprove their performance when controlling gaming software, and so on.The AMS application can also be adapted to communicate with the gamingapplication via an API to receive additional gaming statistics capturedby the gaming application. The AMS application can also utilizestatistical and behavior modeling techniques to predict the behavior ofthe gamer and responses from the software application to identifypossible ways to improve the gamer's performance.

In addition to FIGS. 6-7, the AMS application can catalogue results asshown in FIG. 14. In this illustration, the AMS application can indicatefor gaming application #1 the weapon type being tracked (e.g., sniperrifle, machine gun, hand gun). It should be noted that the communicationflow diagram shown in FIG. 13 can be modified with a more comprehensiveprotocol that includes a weapon type being monitored, misses, non-killhits (i.e., a hit that does not result in a kill), kill hits, and lossof life. The AMS application can calculate an average hit rate from themisses, non-kill hits, and kill hits. The AMS application can alsocompare these results to community ratings.

A community rating can be localized to just users of the computer 402playing gaming application #1, or all on-line users which can span alarge community of users of gaming application #1. Thus, although anaverage hit rate of 29% for a sniper rifle may seem low, when thesestatistics are compared to other members of a community, the AMSapplication can determine from prior performance records of members ofthe community (retrieved from a local or remote database) that theuser's performance is in fact above average. Similar communitycomparisons can be performed for the weapon type “machine gun” and “handgun”. The AMS application can also monitor and track statistics of othergaming applications which may have different weapon types such as shownfor gaming application #2. Similar statistics can be generated andcompared to the performance of members of a community to which the gameris associated.

From the foregoing descriptions, it would be evident to an artisan withordinary skill in the art that the aforementioned embodiments can bemodified, reduced, or enhanced without departing from the scope andspirit of the claims described below.

For example, the statistical results shown in FIG. 14 can be used toidentify behavioral and/or skill patterns of a gamer. For instance, ingaming application #1 and gaming application #2, the gamer appears toperform well as a sniper and bow and arrow marksman. The AMS applicationcan be adapted to detect these correlations to indicate a skill set ofthe gamer that may be consistent between different games. For example, asniper and bowman have a similar trait that requires marksmanship, calmnerves, and knowing when to strike. This trait can be identified by theAMS application and can be used to identify other games in which thegamer may perform well. This trait can also be advertised to othergamers to promote teams.

The methods of FIGS. 8-11 can also be adapted to operate in whole or inpart in a gaming accessory, in an operating system of a computer, in agaming console, in a gaming application which runs on the computer, orin an on-line gaming application.

The method of FIG. 11 can be further adapted to ignore or filter gameaction results, which may not be relevant to the gamer. For instance,the AMS application can be adapted to ignore (or filter) game actionresults relating to navigation of the avatar (e.g., turn around, jump,etc.). The AMS application can also be adapted to ignore (or filter)game action results relating to preparatory actions such as reloading agun, switching between weapons, and so on. In another embodiment, theAMS application can be adapted to selective monitor only particular gameresult actions such as misses, non-kill hits, kills, and life of theavatar. The AMS application can also be adapted to monitor gaming actionresults with or without temporal data associated with the stimuli andgame action results.

In one embodiment, the AMS application can also be adapted to trackstimuli (or substitutions thereof) by submission order, and order ofgaming action results supplied by the gaming application, and performcataloguing thereof by the respective order of stimuli and gaming actionresults. The items can be catalogued by the AMS application with orwithout temporal data.

In one embodiment, the AMS application can be adapted to collect gamingaction results for “all” or a substantial portion of stimuli (orsubstitutions thereof) transmitted to the gaming application. In thisembodiment, the AMS application can be adapted to enable a gamer toreplay portions of the game to allow the gamer to visualize (in slowmotion, still shots, or regular play speed) the actions taken by thegamer (i.e., accessory stimuli and/or substitute stimuli) to help thegamer identify areas of the game where his/her performance can beimproved.

In one embodiment, the AMS application can be adapted to substitute anaccessory stimulus (or stimuli) for a macro comprising a combination oftwo or more substitute stimuli, and track the combination of substitutestimuli individually and as a macro when gaming action results arereceived from the gaming application. The AMS application can be adaptedto monitor macros by tracking an order of stimuli (or substitutes)associated with the macro that are transmitted to the gaming applicationand by tracking an order of gaming action results received from thegaming application, which are associated with the macro. Alternatively,or in combination the AMS application can add a unique identifier to thesubstitute stimuli to identify the stimuli as being associated with themacro.

The AMS application can be adapted to catalogue the gaming actionresults associated with the macro in a manner that allows the gamer toidentify a group of gaming action results as being associated with themacro. The AMS application can also be adapted to collect sufficientdata to assess each individual gaming action result of the macro (e.g.,temporal data, hits, misses, etc.). The presentation of catalogued macrodata can be hierarchical. For example, the AMS application can present aparticular macro by way of a high level GUI that indicates the macrocaused a kill. The AMS application can be adapted to enable the gamer toselect a different GUI that enables the user to visualize a gamingaction result for each stimulus of the macro to determine how effectivethe macro was in performing the kill, and whether further adjustments ofthe macro might improve the gamer's performance.

In another embodiment, the AMS application can be adapted to define morethan one programmable layer for an accessory. Such a feature can extendthe functionality of an accessory into multi-layer paradigms of inputfunctions. The GUI of FIG. 1 can be adapted so that a user can specifymore than one programmable layer for a specific accessory (e.g., themouse and mouse pad combination 115 or tablet 302. The user can alsospecify which layer to present in FIG. 1 while associating actions. Iffor instance layer 1 is shown, the GUI of FIG. 1 can present the actionsassociated in this layer by presenting descriptors superimposed on theinput functions (e.g., buttons or keys). When the user switches to layer2 (e.g., by selecting from a drop-down menu the layer of interest) theaccessory can be shown in the GUI with a different set of associatedactions. The user can define a macro or identify a key sequence toswitch between layers when the accessory is in use.

The trigger for switching between layers can be a toggle function (e.g.,selecting a layer button on the tablet 302) to switch between layers ina round robin fashion (layer 1→layer 2→layer 3→to layer 1→and so on).Alternatively, the user can define a hold and release trigger to switchbetween layers. In this embodiment, the user moves to another layerwhile pressing a button on the tablet 302 and returns to the precedinglayer upon its release. In yet another embodiment, the trigger to switchlayers can be defined differently per layer. The user can for exampleselect one button in layer 1 to proceed to layer 2, and select adifferent button in layer 2 to return to layer 1 or proceed to yetanother layer 3. There can be numerous combinations of layers andtriggers which can be defined to substantially expand the capability ofsingle accessory.

In another embodiment, the AMS application can be adapted so that agamer can define super macros and/or super profiles. A super macro canrepresent nested macros (combinations of macros). AMS application can beadapted so that the gamer can customize the timing for executing nestedmacros. Similarly, a super profile can represent nested profiles(combinations of profiles). A super profile can for example comprisesub-profiles, each sub-profile defining associations of actions to inputfunctions of a particular accessory. The super macros and/or profilescan be programmed into the dongle 202.

In yet another embodiment, the mouse 210 can be adapted with a proximitysensor (e.g., optical sensor, electromagnetic sensor, capacitive sensor,inductive sensor, or other suitable sensor) capable of detecting adisplacement of the mouse 210 from the top surface 204 of the mouse pad202. Depending on the proximity sensing technology used by the mouse210, the top surface 204 of the mouse pad 202 can be adapted withmaterials that facilitate proximity sensing by the proximity sensor usedby the mouse 210. In this embodiment, the mouse 210 providestwo-dimensional coordinate movement to the computing device (e.g.,gaming console 306 or computer 402) when the mouse 210 is navigating onthe top surface 204 of the mouse pad 202. When the mouse 210 is liftedfrom the top surface 204 of the mouse pad 202, the mouse 210 can providethree-dimensional proximity data to the AMS application which can besubstituted with navigation stimuli of other devices such as a joy stick116 shown in FIG. 1 or by a suitable transcoding technique. The mouse210 can also be adapted with an accelerometer and/or gyroscope tocombine proximity data with information relating to acceleration and/ororientation of the mouse 210.

In one embodiment, the mouse pad 202 can be equipped with a touchsensitive display for communicating with the AMS application to performassociations and/or select a profile for use in a gaming application. Inone embodiment, the mouse 210 can be equipped with a display forcommunicating with the AMS application to perform associations and/orselect a profile for use in a gaming application. In one embodiment,methods 800, 900, and 1000 can be adapted for applications unrelated togaming. For example, the angular displacement of a mouse 210 can be usedto navigate through file systems and/or folders managed by an operatingsystem.

The foregoing embodiments are a subset of possible embodimentscontemplated by the present disclosure. Other suitable modifications canbe applied to the present disclosure.

FIG. 15 depicts an exemplary diagrammatic representation of a machine inthe form of a computer system 1500 within which a set of instructions,when executed, may cause the machine to perform any one or more of themethods discussed above. One or more instances of the machine canoperate as any of devices depicted in FIGS. 1-4 and FIG. 12. In someembodiments, the machine may be connected (e.g., using a network) toother machines. In a networked deployment, the machine may operate inthe capacity of a server or a client user machine in server-client usernetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment.

The machine may comprise a server computer, a client user computer, apersonal computer (PC), a tablet PC, a smart phone, a laptop computer, adesktop computer, a control system, a network router, switch or bridge,or any machine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. It will beunderstood that a communication device of the present disclosureincludes broadly any electronic device that provides voice, video ordata communication. Further, while a single machine is illustrated, theterm “machine” shall also be taken to include any collection of machinesthat individually or jointly execute a set (or multiple sets) ofinstructions to perform any one or more of the methods discussed herein.

The computer system 1500 may include a processor 1502 (e.g., a centralprocessing unit (CPU), a graphics processing unit (GPU, or both), a mainmemory 1504 and a static memory 1506, which communicate with each othervia a bus 1508. The computer system 1500 may further include a videodisplay unit 1510 (e.g., a liquid crystal display (LCD), a flat panel,or a solid state display. The computer system 1500 may include an inputdevice 1512 (e.g., a keyboard), a cursor control device 1514 (e.g., amouse), a disk drive unit 1516, a signal generation device 1518 (e.g., aspeaker or remote control) and a network interface device 1520.

The disk drive unit 1516 may include a tangible computer-readablestorage medium 1522 on which is stored one or more sets of instructions(e.g., software 1524) embodying any one or more of the methods orfunctions described herein, including those methods illustrated above.The instructions 1524 may also reside, completely or at least partially,within the main memory 1504, the static memory 1506, and/or within theprocessor 1502 during execution thereof by the computer system 1500. Themain memory 1504 and the processor 1502 also may constitute tangiblecomputer-readable storage media.

Dedicated hardware implementations including, but not limited to,application specific integrated circuits, programmable logic arrays andother hardware devices can likewise be constructed to implement themethods described herein. Applications that may include the apparatusand systems of various embodiments broadly include a variety ofelectronic and computer systems. Some embodiments implement functions intwo or more specific interconnected hardware modules or devices withrelated control and data signals communicated between and through themodules, or as portions of an application-specific integrated circuit.Thus, the example system is applicable to software, firmware, andhardware implementations.

In accordance with various embodiments of the present disclosure, themethods described herein are intended for operation as software programsrunning on a computer processor. Furthermore, software implementationscan include, but not limited to, distributed processing orcomponent/object distributed processing, parallel processing, or virtualmachine processing can also be constructed to implement the methodsdescribed herein.

While the tangible computer-readable storage medium 622 is shown in anexample embodiment to be a single medium, the term “tangiblecomputer-readable storage medium” should be taken to include a singlemedium or multiple media (e.g., a centralized or distributed database,and/or associated caches and servers) that store the one or more sets ofinstructions. The term “tangible computer-readable storage medium” shallalso be taken to include any non-transitory medium that is capable ofstoring or encoding a set of instructions for execution by the machineand that cause the machine to perform any one or more of the methods ofthe present disclosure.

The term “tangible computer-readable storage medium” shall accordinglybe taken to include, but not be limited to: solid-state memories such asa memory card or other package that houses one or more read-only(non-volatile) memories, random access memories, or other re-writable(volatile) memories, a magneto-optical or optical medium such as a diskor tape, or other tangible media which can be used to store information.Accordingly, the disclosure is considered to include any one or more ofa tangible computer-readable storage medium, as listed herein andincluding art-recognized equivalents and successor media, in which thesoftware implementations herein are stored.

Although the present specification describes components and functionsimplemented in the embodiments with reference to particular standardsand protocols, the disclosure is not limited to such standards andprotocols. Each of the standards for Internet and other packet switchednetwork transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) representexamples of the state of the art. Such standards are from time-to-timesuperseded by faster or more efficient equivalents having essentiallythe same functions. Wireless standards for device detection (e.g.,RFID), short-range communications (e.g., Bluetooth, WiFi, Zigbee), andlong-range communications (e.g., WiMAX, GSM, CDMA, LTE) are contemplatedfor use by computer system 1500.

The illustrations of embodiments described herein are intended toprovide a general understanding of the structure of various embodiments,and they are not intended to serve as a complete description of all theelements and features of apparatus and systems that might make use ofthe structures described herein. Many other embodiments will be apparentto those of skill in the art upon reviewing the above description. Otherembodiments may be utilized and derived therefrom, such that structuraland logical substitutions and changes may be made without departing fromthe scope of this disclosure. Figures are also merely representationaland may not be drawn to scale. Certain proportions thereof may beexaggerated, while others may be minimized. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense.

Although specific embodiments have been illustrated and describedherein, it should be appreciated that any arrangement calculated toachieve the same purpose may be substituted for the specific embodimentsshown. This disclosure is intended to cover any and all adaptations orvariations of various embodiments. Combinations of the aboveembodiments, and other embodiments not specifically described herein,are contemplated by the present disclosure.

The Abstract of the Disclosure is provided with the understanding thatit will not be used to interpret or limit the scope or meaning of theclaims. In addition, in the foregoing Detailed Description, it can beseen that various features are grouped together in a single embodimentfor the purpose of streamlining the disclosure. This method ofdisclosure is not to be interpreted as reflecting an intention that theclaimed embodiments require more features than are expressly recited ineach claim. Rather, as the following claims reflect, inventive subjectmatter lies in less than all features of a single disclosed embodiment.Thus the following claims are hereby incorporated into the DetailedDescription, with each claim standing on its own as a separately claimedsubject matter.

What is claimed is:
 1. A method, comprising: generating, by an accessorymanagement software (AMS) application executed by a computing deviceincluding a processor, a plurality of substitute gaming stimulationsassociated with a plurality of stimulus signals generated by a gamingaccessory device; adding, by the AMS application, a first uniqueidentifier to each of the plurality of substitute gaming stimulations;transmitting, by the AMS application, the plurality of substitute gamingstimulations to a gaming application being executed on the computingdevice, wherein the first unique identifier enables tracking of aplurality of gaming action results generated by the gaming applicationresponsive to the plurality of substitute gaming stimulationstransmitted to the computing device; receiving, by the AMS applicationfrom the gaming application, the plurality of game action results,wherein each of the plurality of gaming action results comprises thefirst unique identifier of a corresponding one of the plurality ofsubstitute gaming stimulations; and presenting, by the AMS application,at a graphical user interface on a display, the plurality of gamingaction results associated with the plurality of substitute gamingstimulations in slow motion.
 2. The method of claim 1, furthercomprising: generating, by the AMS application, a plurality of signalsresponsive to the plurality of gaming action results; and transmitting,by the AMS application, the plurality of signals to present a pluralityof notices representative of the plurality of gaming action results. 3.The method of claim 2, further comprising transmitting, by the AMSapplication, the plurality of signals to the gaming accessory device topresent the plurality of notices at a graphical user interface of thegaming accessory device.
 4. The method of claim 3, wherein the firstunique identifier comprises a code that uniquely identifies each of theplurality of substitute gaming stimulations.
 5. The method of claim 1,further comprising: identifying, by the AMS application, a portion ofthe plurality of substitute gaming stimulations as a macro resulting inan identified macro, the identified macro comprising a plurality ofgaming actions; and incorporating, by the AMS application, in eachsubstitute gaming stimulation of an identified portion a second uniqueidentifier.
 6. The method of claim 5, wherein a portion of the pluralityof gaming action results comprises at least one gaming action resultassociated with the second unique identifier of a corresponding one ofthe portion of the plurality of substitute gaming stimulations.
 7. Themethod of claim 1, further comprising providing adjustments, by the AMSapplication, at a graphical user interface of the gaming accessorydevice, to the plurality of stimulus signals associated with theplurality of substitute gaming stimulations based on the plurality ofgaming action results to improve performance.
 8. The method of claim 1,wherein each of the plurality of gaming action results comprises adescription of a gaming action and a time when the gaming action tookplace.
 9. A machine-readable storage device, comprising executableinstructions that, when executed by a processing system including aprocessor, facilitate performance of operations, comprising: generatinga plurality of substitute gaming stimulations to replace a plurality ofstimulus signals generated by a gaming accessory device; adding, to eachof the plurality of substitute gaming stimulations, a first uniqueidentifier, wherein the first unique identifier of each of the pluralityof substitute gaming stimulations distinguishes each of the plurality ofsubstitute gaming stimulations from each other; submitting the pluralityof substitute gaming stimulations to a gaming application, wherein thefirst unique identifier of each of the plurality of substitute gamingstimulations enables tracking of a plurality of gaming action resultsgenerated by the gaming application responsive to the plurality ofsubstitute gaming stimulations submitted to the gaming application; andpresenting, at a graphical user interface on a display, the plurality ofgaming action results associated with the plurality of substitute gamingstimulations in slow motion.
 10. The machine-readable storage device ofclaim 9, wherein the operations further comprise receiving the pluralityof game action results from the gaming application, wherein each of theplurality of gaming action results comprises a corresponding firstunique identifier of a corresponding one of the plurality of substitutegaming stimulations.
 11. The machine-readable storage device of claim 9,wherein the operations further comprise transmitting a plurality ofsignals to present a plurality of notices representative of theplurality of gaming action results.
 12. The machine-readable storagedevice of claim 11, wherein the operations further comprise: identifyinga portion of the plurality of substitute gaming stimulations as a macrocomprising a plurality of gaming actions resulting in an identifiedmacro; and incorporating in each substitute gaming stimulation of theidentified macro a second unique identifier.
 13. The machine-readablestorage device of claim 12, wherein a portion of the plurality of gamingaction results comprises at least one gaming action result associatedwith the second unique identifier of a corresponding one of the portionof the plurality of substitute gaming stimulations.
 14. Themachine-readable storage device of claim 9, wherein the operationsfurther comprise providing adjustments, at a graphical user interface,to the plurality of stimulus signals associated with the plurality ofsubstitute gaming stimulations based on the plurality of gaming actionresults to improve performance.
 15. A computing device, comprising: aprocessing system including a processor; a memory that stores executableinstructions that, when executed by the processing system, facilitateperformance of operations, comprising: generating a plurality ofsubstitute gaming stimulations to replace a plurality of stimulussignals generated by a gaming accessory device, wherein each of theplurality of substitute gaming stimulations includes a first uniqueidentifier; submitting the plurality of substitute gaming stimulationsto a gaming application, wherein the first unique identifier of each ofthe plurality of substitute gaming stimulations enables tracking of aplurality of gaming action results generated by the gaming application;generating an updated plurality of gaming action results by associatingeach of the plurality of gaming action results with the first uniqueidentifier of a corresponding one of the plurality of substitute gamingstimulations; cataloging the updated plurality of gaming action resultsfor a record of a user's performance; and instructing the gamingapplication to present, at a graphical user interface on a display, theplurality of gaming action results associated with the plurality ofsubstitute gaming stimulations in slow motion.
 16. The computing deviceof claim 15, wherein the first unique identifier comprises a code thatuniquely identifies each of the plurality of substitute gamingstimulations.
 17. The computing device of claim 15, wherein theoperations further comprise transmitting a plurality of signals topresent a plurality of notices representative of the plurality of gamingaction results cataloged in the record for the user.
 18. The computingdevice of claim 15, wherein the operations further comprise: identifyinga portion of the plurality of substitute gaming stimulations as a macrocomprising a plurality of gaming actions resulting in an identifiedmacro; and incorporating in each substitute gaming stimulation of theidentified macro a second unique identifier.
 19. The computing device ofclaim 18, wherein the operations further comprise associating eachgaming action result of a portion of the plurality of gaming actionresults with the second unique identifier of a corresponding one of theportion of the plurality of substitute gaming stimulations.
 20. Thecomputing device of claim 15, wherein the operations further compriseproviding adjustments, at the graphical user interface, to the pluralityof stimulus signals associated with the plurality of substitute gamingstimulations based on the plurality of gaming action results to improveperformance